﻿#pragma once

#include <memory>
#include <thread>
#include <QCoreApplication>
#include "pingpong.h"
#include "server_base.h"
#include "client_base.h"

class PingpongPrivate
{
public:
    PingpongPrivate();
    ~PingpongPrivate();

    void Start(NetworkType client, NetworkType server);
    void Stop();
    unsigned long long Result();

private:
    std::thread thread_;
    std::unique_ptr<QCoreApplication> application_;
    std::unique_ptr<ServerBase> pingpong_server_;
    std::unique_ptr<ClientBase> pingpong_client_;
    int argc = 0;

};
